/**
 * 给你一个字符串，将其转换成有效的IP地址
 */
let ans = [];
let nums = [];
function resetIP(str = "") {
    dfs(str, 0, 0);
}
/**
 * 使用递归和回溯来实现
 * @param {*} str 
 * @param {*} idx 
 * @param {*} start 
 * @returns 
 */
function dfs(str = "", idx, start) {
    if (idx === 4 && start === str.length) {
        ans.push(nums.join("."));
        return;
    }
    if (nums.length > 4) return;
    let num = 0;
    for (let i = start; i < str.length; i++) {
        num = num * 10 + Number(str[i]);
        if (num > 255) break;
        nums.push(num);
        dfs(str, idx + 1, i + 1);
        nums.pop();
    }
}